home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 021 - HO Utilities - Clock Utility System.dsk / SET.CLOCK.bas < prev    next >
BASIC Source File  |  2019-02-16  |  4KB  |  94 lines

  1. 10  REM SET TIMEMASTER II H.O. SEPT 86
  2. 20  REM COPYRIGHT (C) 1986 APPLIED ENGINEERING
  3. 30  REM WRITTEN BY BOB SANDER-CEDERLOF
  4. 40  REM ----------------------
  5. 50  TEXT : HOME 
  6. 60  GOSUB 900: IF SLOT = 0  THEN  PRINT "NO TIMEMASTER II FOUND": END 
  7. 70  PRINT "YOUR ";: INVERSE : PRINT " TIMEMASTER II ";: NORMAL : PRINT "IS IN SLOT "SLOT: PRINT 
  8. 80  DIM V(12),MD(11),DN$(6): FOR I = 0 TO 11: READ MD(I): NEXT : FOR I = 0 TO 6: READ DN$(I): NEXT : DATA  3,6,1,4,6,2,5,0,3,5,1,4,SUN,MON,TUES,WEDNES,THURS,FRI,SATUR
  9. 90  GOSUB 1100: REM EXPLAIN MODE ON SCREEN
  10. 100  GOSUB 600: REM READ CLOCK
  11. 110  IF  PEEK( -16384) = 27  THEN  END : REM ESC TO END 
  12. 120  GOSUB 700: REM GET NEW SETTING
  13. 130  GOSUB 400: REM SET CLOCK
  14. 140  GOSUB 600: REM READ CLOCK
  15. 150  HOME : ONERR  GOTO 170
  16. 160  PRINT D$"-STARTUP"
  17. 170  END 
  18. 180  REM --------------------
  19. 400  REM SET CLOCK
  20. 410  VTAB 22: INVERSE : HTAB 6: PRINT " PRESS <RETURN> TO SET CLOCK ";: NORMAL : GET A$: PRINT A$: IF A$ < > CHR$(13)  THEN  VTAB 19: HTAB 14: PRINT "CLOCK NOT SET": RETURN 
  21. 420  IF AP < >3  OR VER <1.2  THEN 480
  22. 430  PRINT D$"PR#"SLOT
  23. 440  PRINT "!";: FOR I = 12 TO 0  STEP  -1: PRINT V(I);: NEXT : PRINT 
  24. 450  PRINT D$"PR#0"
  25. 460  RETURN 
  26. 470  REM --------------------
  27. 480  REM SET CLOCK
  28. 490  POKE PB,16: REM  HOLD THE CLOCK
  29. 500  POKE CA,0: POKE PA,15: POKE CA,4: REM A(3-0) OUTPUT
  30. 510  FOR I = 0 TO 12
  31. 520  POKE PB,I +16: REM HOLD + DIGIT
  32. 530  POKE PA,V(I) +8 *(I = 5): REM VALUE AND SET 24 HOUR MODE
  33. 540  POKE PB,I +80: REM HOLD+DIGIT+WRITE
  34. 550  POKE PB,I +16: REM HOLD + DIGIT
  35. 560  NEXT I
  36. 570  POKE PB,47: POKE CA,0: POKE PA,0: POKE CA,4: REM RESTORE NORMAL PIA SETTINGS
  37. 580  RETURN 
  38. 590  REM --------------------
  39. 600  REM READ THE CLOCK
  40. 610  INVERSE : VTAB 22: HTAB 4: PRINT "    PRESS ANY KEY TO CONTINUE     ": NORMAL 
  41. 620 D$ =  CHR$(4)
  42. 630  PRINT D$"PR#"SLOT: PRINT D$"IN#"SLOT
  43. 640  INPUT ":";A$: REM IN S-C MODE SELECTS TIMEMASTER FORMAT
  44. 650  PRINT D$"PR#0": PRINT D$"IN#0": VTAB 5: PRINT "THE TIME IS:  "A$
  45. 660  IF  PEEK( -16384) <128  THEN 630:
  46. 670  POKE  -16368,0
  47. 680  RETURN 
  48. 690  REM -----------------------
  49. 700  REM GET CLOCK SETTINGS
  50. 710  VTAB 8: CALL  -958
  51. 720 Q$ = "MONTH":LL = 1:UL = 12: GOSUB 1000:V(10) = XT:V(9) = XU:M = X -3
  52. 730 Q$ = "DAY":UL = 31: GOSUB 1000:V(8) = XT:V(7) = XU:D = X
  53. 740 Q$ = "YEAR":LL = 1984:UL = 2083: GOSUB 1000:V(12) = XT:V(11) = XU:Y = X -1984
  54. 750  IF M <0  THEN M = M +12:Y = Y -1
  55. 760 W = Y + INT(Y/4) +MD(M) +D:V(6) = W - INT(W/7) *7: PRINT "               DAY OF WEEK:  "DN$(V(6))"DAY"
  56. 770 Q$ = "HOUR":LL = 1:UL = 12: GOSUB 1000:H = X
  57. 780 Q$ = "MINUTE":LL = 0:UL = 59: GOSUB 1000:V(3) = XT:V(2) = XU
  58. 790  GOSUB 1200: IF H = 12  THEN H = 0
  59. 800  IF X = 1  THEN H = H +12
  60. 810 X = H: GOSUB 1050:V(5) = XT:V(4) = XU
  61. 820  RETURN 
  62. 830  REM -------------------
  63. 900  REM  TIMEMASTER II FINDER
  64. 910 SLOT = 0: FOR I = 1 TO 7:ADDR = 12 *4096 +I *256: REM  $CS00
  65. 920  IF  PEEK(ADDR) = 8  AND  PEEK(ADDR +1) = 120  AND  PEEK(ADDR +254) = 178  THEN SLOT = I:I = 7
  66. 930  NEXT : IF SLOT = 0  THEN  RETURN 
  67. 940 AP =  PEEK(ADDR +255):VER =  PEEK(ADDR +250): IF VER = 255  THEN VER = 0
  68. 950 PA = 12 *4096 +128 +SLOT *16: REM  $C080+SLOT*16
  69. 960 CA = PA +1:PB = PA +2
  70. 970 VER =  INT(VER/16) +(VER -16 * INT(VER/16))/10:VER$ =  STR$(VER)
  71. 980  RETURN 
  72. 990  REM -------------------
  73. 1000  REM QUERY FOR VALUE
  74. 1010 V =  PEEK(37) +1
  75. 1020 QQ$ = "ENTER " +Q$ +" (" + STR$(LL) +"-" + STR$(UL) +"):  "
  76. 1030  VTAB V: HTAB 30 - LEN(QQ$): PRINT QQ$;: INPUT "";A$: IF A$ = ""  THEN 1030
  77. 1040 X =  INT( VAL(A$)): IF X <LL  OR X >UL  THEN 1030
  78. 1050 XX = X - INT(X/100) *100
  79. 1060 XT =  INT(XX/10):XU = XX -10 *XT
  80. 1070  RETURN 
  81. 1080  REM -------------------
  82. 1100  REM  EXPLAIN MODE ON SCREEN
  83. 1110  IF AP = 1  THEN Q$ = "APPLECLOCK MODE (SW 2 ON)": IF VER >0  THEN Q$ = Q$ +" VER " +VER$
  84. 1120  IF AP = 3  THEN Q$ = "TIMEMASTER II MODE (SW 2 OFF)": IF VER >0  THEN Q$ = Q$ +" VER " +VER$
  85. 1130  PRINT Q$: RETURN 
  86. 1140  REM -------------------
  87. 1200  REM GET AM/PM
  88. 1210 Q$ = "ENTER AM/PM:  ":V =  PEEK(37) +1
  89. 1220  VTAB V: HTAB 30 - LEN(Q$): PRINT Q$;: INPUT "";A$: IF A$ = ""  THEN 1220
  90. 1230 A$ =  LEFT$(A$,1): IF A$ < >"A"  AND A$ < >"P"  AND A$ < >"a"  AND A$ < >"p"  THEN 1220
  91. 1240 X = 0: IF A$ = "P"  OR A$ = "p"  THEN X = 1
  92. 1250  RETURN 
  93. 1260  REM -------------------
  94. 60000  PR# 1: PRINT  CHR$(9)"80N":E$ =  CHR$(27): PRINT E$"B"E$"E"E$"L010": LIST : PR# 0: CALL 1002: END